Virtualization allows multiplexing of the underlying host machine between different virtual machines. The host computer allocates a certain amount of its resources to each of the virtual machines. Each virtual machine is then able to use the allocated resources to execute applications, including operating systems (referred to as guest operating systems). The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM) or a kernel-based hypervisor. The hypervisor emulates the underlying hardware of the host computer, making the use of the virtual machine transparent to the guest operating system and the user of the virtual machine.
Virtual machines can be provided by a centralized host that is coupled to multiple clients over a network. Each client can provide a virtual desktop environment indistinguishable from a physical desktop. A large organization with many different departments and multiple offices at various locations may have a system with thousands of virtual machines. Management of numerous virtual machines is a complex task that typically requires a large degree of system scalability. Certain virtual machine management systems may include a task manager that monitors the status of commands and processes being executed on the hosts running the hypervisors and tracks their progress. Not all systems include a task manager, however. In systems without a centralized task manager, monitoring the progress of commands and processes can be a complex and resource intensive undertaking.